﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Campeonato.Model;
using Campeonato.Common.BLL;

namespace Campeonato
{
    public partial class FrmNovoConfronto : Form
    {
        private int m_rodada;
        private int m_campeonatoID;
        private bool m_jogosFinais;
        
        public FrmNovoConfronto(int _campeonatoID, IList<Jogador> _jogadores, int _rodada)
        {
            InitializeComponent();
            m_rodada = _rodada;
            m_campeonatoID = _campeonatoID;
            this.srcJogadores1.DataSource = _jogadores;
            this.srcJogadores2.DataSource = _jogadores;
            m_jogosFinais = false;
        }

        public FrmNovoConfronto(int _campeonatoID, Partida _partida)
        {
            InitializeComponent();
            m_rodada = _partida.Rodada;
            m_campeonatoID = _campeonatoID;

            this.srcJogadores1.DataSource = new List<Jogador>() { _partida.Jogador1 };
            this.srcJogadores2.DataSource = new List<Jogador>() { _partida.Jogador2 };

            this.cmbJogador1.Enabled = false;
            this.cmbJogador1.SelectedIndex = 0;
            this.cmbJogador2.Enabled = false;
            this.cmbJogador2.SelectedIndex = 0;

            m_jogosFinais = true;
        }

        private void FrmNovoConfronto_Load(object sender, EventArgs e)
        {

        }

        private void btnOk_Click(object sender, EventArgs e)
        {

            if (m_jogosFinais || this.cmbJogador1.SelectedIndex != this.cmbJogador2.SelectedIndex)
            {
                PartidaCriada = new Partida();
                PartidaCriada.Data = this.dtpDataConfronto.Value;
                PartidaCriada.Jogador1 = (Jogador)this.cmbJogador1.SelectedItem;
                PartidaCriada.Jogador2 = (Jogador)this.cmbJogador2.SelectedItem;
                PartidaCriada.Rodada = m_rodada;
                int _rodada = 0;
                if (!m_jogosFinais && !PartidaBLL.ValidaPartida(m_campeonatoID, PartidaCriada, out _rodada))
                {
                    MessageBox.Show(string.Format("Partida já cadastrada na rodada {0}, escolha outro confronto.", _rodada),
                        "Aviso",
                        MessageBoxButtons.OK,
                        MessageBoxIcon.Exclamation);
                }
                else
                {
                    this.DialogResult = System.Windows.Forms.DialogResult.OK;
                    this.Close();
                }
            }
            else
                MessageBox.Show("Selecione outro jogador para enfrentamento!");

        }

        public Partida PartidaCriada { get; private set; }
    }
}
